package com.easylinkin.linkappapi.alarm.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.easylinkin.linkappapi.alarm.entity.Alarm;
import com.easylinkin.linkappapi.alarm.entity.AlarmNotice;
import com.easylinkin.linkappapi.device.entity.Device;
import com.easylinkin.linkappapi.security.entity.LinkappUser;
import java.util.List;

/**
 * <p>
 * 告警通知日志 服务类
 * </p>
 *
 * @author TongJie
 * @since 2020-05-14
 */
public interface AlarmNoticeService extends IService<AlarmNotice> {

    /**
     * 告警通知分页
     *
     * @param page 分页参数
     * @param alarmNotice dto
     * @return 查询结果
     */
    IPage<AlarmNotice> getAlarmNoticePage(Page page, AlarmNotice alarmNotice);

    /**
     * 获取所有通知人
     *
     * @param requestModel dto
     * @return 查询结果
     */
    List<LinkappUser> getNoticeUser(AlarmNotice requestModel);

/*    *//**
     * 告警通知  一个告警可能对应多个通知
     *//*
    boolean alarmNotice(Alarm alarm);*/

    /**
     * 查询告警通知
     */
    List<AlarmNotice> getAlarmNotices(AlarmNotice alarmNotice);

    /**
     * 通知联系人
     *
     * @param alarmNotices
     * @param device
     * @param alarm
     * @return
     */
    void noticeAndSaveAlarmNotices(List<AlarmNotice> alarmNotices, Device device, Alarm alarm);
}
